<?php
/* 
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
*/

/**
 * Classe responsável por fazer persistência de dados relativas ao modelo de
 * professor.
 * Herda de UsuarioDAOClass, assim como no modelo de negócios.
 * @author Joao Pereira
 */
include_once 'ConfigClass.php';
include_once '../negocios/ProfessorClass.php';
include_once '../negocios/UsuarioClass.php';
class ProfessorDAOClass extends UsuarioDAOClass {


    public function  __construct() {
        $this->conn = new ConfigClass();
    }

    public function  __destruct() {

    }

    /**
     * Método que cadastra um professor no banco de dados
     * recebe um objeto de ProfessorClass, preenchido e o insere no banco
     *@param ProfessorClass $prof     
     */
    public function cadastraProfessor( ProfessorClass $prof) {

        $this->conn->conecta();

        $id_usuario = parent::get_Id_usuario($prof->getLogin());
        $query = "INSERT INTO professor (matricula, intro_lattes, link_lattes, departamento, coordenador, status, id_usuario)".
                "VALUES ('".$prof->getMatricula()."' , '".$prof->getIntro_lattes()."', '".$prof->getLink_lattes()."','".$prof->getDepartamento()."', ".$prof->getCoordenador()." , '".$prof->getStatus()."', ".$id_usuario.")";
        $res = pg_query($query);

        $this->conn->desconecta();

    }
    /**
     * Método responsável pela atualização de dados na tabela professor.
     * Recebe um objeto de ProfessorClass com os dados atualizados
     * @param <ProfessorClass> $prof
     */
    public function atualizaProfessor(ProfessorClass $prof ) {
        $id_usuario = parent::get_Id_usuario($prof->getLogin());
        $this->conn->conecta();

        $query = "UPDATE professor".
                 "SET matricula= '".$prof->getMatricula()."', intro_lattes='".$prof->getIntro_lattes()."', link_lattes='".$prof->getLink_lattes()."', departamento='".$prof->getDepartamento()."', coordenador= ".$prof->getCoordenador().", status= '".$prof->getStatus()."'
                 WHERE professor.id_usuario=$id_usuario";
        ;

    }

    /**
     *Método que busca um professor no banco de dados, a partir do login
     * retorna Null se nao encontrar nada.
     * @param <String> $login
     * @return <ProfessorClass> $prof
     */
    public function buscaProfessor($login) {
        $this->conn->conecta();

        $id_usuario = parent::get_Id_usuario($login);
        $query = "SELECT * FROM professor WHERE id_usuario =$id_usuario";
        $result = pg_query($query);
        if(pg_num_rows($result)==0) {    //verifica se encontrou algum professor, com o id_usuario.
            echo "Nenhum professor encontrado com este login <br>";
            return NULL;
        }else {


            while($row = pg_fetch_assoc($result)) {
                //preenchendo instancia do professor
                $prof = new ProfessorClass();
                $prof->setMatricula($row['matricula']);
                $prof->setIntro_lattes($row['intro_lattes']);
                $prof->setLink_lattes($row['link_lattes']);
                $prof->setDepartamento($row['departamento']);
                $prof->setCoordenador($row['coordenador']);
                $prof->setStatus($row['status']);

                //array_push($array_user, $user);

            }
            $this->conn->desconecta(); // desconecta com BD

            //return $array_user;
            return $prof;
        }//fim else

    }
}
?>